import { SOption, KeyItems,SKeyItem,KeyBoardType,Themes } from "../../use/index.slint";

export global DefaultKeyBoardProps {
    in property <Themes> theme: Themes.Dark;
    in property <length> font-size: 16px;
    in-out property <KeyBoardType> keyboard-type: KeyBoardType.PhoneNumber;
}

export global DefaultKeyBoardKeys {
    in-out property <[SKeyItem]> number-signs: [
        {
            label: ".",
            value: KeyItems.Point
        },
        {
            label: "/",
            value: KeyItems.Div
        },
        {
            label: "+",
            value: KeyItems.Add
        },
        {
            label: "-",
            value: KeyItems.Sub
        },
        {
            label: "*",
            value: KeyItems.Mul
        },
        {
            label: "@",
            value: KeyItems.At
        },
        {
            label: "&",
            value: KeyItems.And
        },
        {
            label: "%",
            value: KeyItems.Percent
        },
        {
            label: "$",
            value: KeyItems.Dollar
        },
        {
            label: "!",
            value: KeyItems.Exclamation
        },
    ];
    in-out property <[SKeyItem]> number-tools: [
        {
            label: "⌫",
            value: KeyItems.Back
        },
        {
            label: "⏎",
            value: KeyItems.Enter
        },
        {
            label: "=",
            value: KeyItems.Equal
        },
        {
            label: "?",
            value: KeyItems.Question
        },
    ];
    in-out property <[[SKeyItem]]> number-keys:[
        [
            {
                label: "1",
                value: KeyItems.One
            },
            {
                label: "2",
                value: KeyItems.Two
            },
            {
                label: "3",
                value: KeyItems.Three
            }
        ],
        [
            {
                label: "4",
                value: KeyItems.Four
            },
            {
                label: "5",
                value: KeyItems.Five
            },
            {
                label: "6",
                value: KeyItems.Six
            }
        ],
        [
            {
                label: "7",
                value: KeyItems.Seven
            },
            {
                label: "8",
                value: KeyItems.Eight
            },
            {
                label: "9",
                value: KeyItems.Nine
            }
        ],
        [
            {
                label: "⎵",
                value: KeyItems.Space
            },
            {
                label: "0",
                value: KeyItems.Zero
            },
            {
                label: ",",
                value: KeyItems.Comma
            }
        ]
    ];
    in-out property <[[SKeyItem]]> alpha-keys:[
        [
            {
                label: "Q",
                value: KeyItems.Q,
            },
            {
                label: "W",
                value: KeyItems.W,
            },
            {
                label: "E",
                value: KeyItems.E,
            },
            {
                label: "R",
                value: KeyItems.R,
            },
            {
                label: "T",
                value: KeyItems.T,
            },
            {
                label: "Y",
                value: KeyItems.Y,
            },
            {
                label: "U",
                value: KeyItems.U,
            },
            {
                label: "I",
                value: KeyItems.I,
            },
            {
                label: "O",
                value: KeyItems.O,
            },
            {
                label: "P",
                value: KeyItems.P,
            }
        ],
        [
            {
                label: "A",
                value: KeyItems.A,
            },
            {
                label: "S",
                value: KeyItems.S,
            },
            {
                label: "D",
                value: KeyItems.D,
            },
            {
                label: "F",
                value: KeyItems.F,
            },
            {
                label: "G",
                value: KeyItems.G,
            },
            {
                label: "H",
                value: KeyItems.H,
            },
            {
                label: "J",
                value: KeyItems.J,
            },
            {
                label: "K",
                value: KeyItems.K,
            },
            {
                label: "L",
                value: KeyItems.L,
            }
        ],
        [
            {
                label: "Z",
                value: KeyItems.Z,
            },
            {
                label: "X",
                value: KeyItems.X,
            },
            {
                label: "C",
                value: KeyItems.C,
            },
            {
                label: "V",
                value: KeyItems.V,
            },
            {
                label: "B",
                value: KeyItems.B,
            },
            {
                label: "N",
                value: KeyItems.N,
            },
            {
                label: "M",
                value: KeyItems.M,
            }
        ],
        [
            
            {
                label: "⌫",
                value: KeyItems.Back
            },
            {
                label: "⎵",
                value: KeyItems.Space
            },
            {
                label: "⏎",
                value: KeyItems.Enter
            }
        ]
    ];
    in-out property <[SKeyItem]> alpha-signs: [
        {
            label: ".",
            value: KeyItems.Point
        },
        {
            label: "/",
            value: KeyItems.Div
        },
        {
            label: "+",
            value: KeyItems.Add
        },
        {
            label: "-",
            value: KeyItems.Sub
        },
        {
            label: "*",
            value: KeyItems.Mul
        },
        {
            label: "@",
            value: KeyItems.At
        },
        {
            label: "&",
            value: KeyItems.And
        },
        {
            label: "%",
            value: KeyItems.Percent
        },
        {
            label: "$",
            value: KeyItems.Dollar
        },
        {
            label: "!",
            value: KeyItems.Exclamation
        },
        {
            label: "`",
            value: KeyItems.BackQuote
        },
        {
            label: "#",
            value: KeyItems.Hash
        },
        {
            label: "^",
            value: KeyItems.Caret
        },
        {
            label: "~",
            value: KeyItems.Tilde
        },
        {
            label: "|",
            value: KeyItems.Pipe
        },
        {
            label: "\\",
            value: KeyItems.Slash
        },
        {
            label: ":",
            value: KeyItems.Colon
        },
        {
            label: ";",
            value: KeyItems.Semicolon
        },

        {
            label: "'",
            value: KeyItems.Apostrophe
        },
        {
            label: "<",
            value: KeyItems.Less
        },
        {
            label: ">",
            value: KeyItems.Greater
        },
        {
            label: "=",
            value: KeyItems.Equal
        },
        {
            label: "?",
            value: KeyItems.Question
        },
        {
            label: "!",
            value: KeyItems.Exclamation
        },
        {
            label: "(",
            value: KeyItems.LeftParenthesis
        },
        {
            label: ")",
            value: KeyItems.RightParenthesis
        },
        {
            label: "[",
            value: KeyItems.LeftBracket
        },
        {
            label: "]",
            value: KeyItems.RightBracket
        },
        {
            label: "{",
            value: KeyItems.LeftBrace
        },
        {
            label: "}",
            value: KeyItems.RightBrace
        },
        {
            label: ",",
            value: KeyItems.Comma
        },
        {
            label: "_",
            value: KeyItems.Underline
        },

    ];
    
}